package br.com.poc.pitagorasnumero.model.bo;

import java.util.List;

/**
 * The Interface ITabelaPitagorasBO.
 * 
 * @author irlan.gomes
 */
public interface INameBO {

	/**
	 * Number obtained by name.
	 * 
	 * @param name
	 *            the name
	 * @return the number expression
	 */
	int doNumberExpression(String name);

	/**
	 * Number obtained through the vowels.
	 * 
	 * @param name
	 *            the name
	 * @return the number motivation
	 */
	int doNumberMotivation(String name);

	/**
	 * Number obtained through the consonants.
	 * 
	 * @param name
	 *            the name
	 * @return the valor consonants.
	 */
	int doNumberPersonality(String name);

	/**
	 * Number obtained by first name.
	 * 
	 * @param name
	 *            the name
	 * @return the number key
	 */
	int doNumberKey(String name);

	/**
	 * Number obtained via the first letter of the name.
	 * 
	 * @param name
	 *            the name
	 * @return the number cornerstone
	 */
	int doNumberCornerstone(String name);

	/**
	 * Number obtained through the first vowel of the name.
	 * 
	 * 
	 * @param name
	 *            the name
	 * @return the number instinctive desire
	 */
	int doNumberInstinctiveDesire(String name);

	/**
	 * Number obtained by surname.
	 * 
	 * @param name
	 *            the name
	 * @return the number vocational health
	 */
	// TODO verificar item 2; consulta terceiro capitulo
	int doNumberVocationalHealth(String name);

	/**
	 * Missing numbers in the name.
	 * 
	 * @param name
	 *            the name
	 * @return the number karma
	 */
	// TODO acompanhe nos diagramas das pp. 30- 31 onde localizá-los).
	List<Integer> doNumberKarma(String name);

	/**
	 * Numbers that appear more than three times in the name.
	 * 
	 * @param name
	 *            the name
	 * @return the number trends hidden
	 */
	List<Integer> doNumberTrendsHidden(String name);

	/**
	 * Number obtained starting the following calculation. Where the value is
	 * subtracted from nine (Fixed value) less the amount of numbers of karma
	 * and not its value. Result = 9 - (qty karma)
	 * 
	 * @param name
	 *            the number karma
	 * @return the answer subconscious
	 */
	int doAnswerSubconscious(final String name);

}
